from PIL import Image
import numpy as np
# 打开GIF文件
gif = Image.open("tri.gif")
# 获取GIF中图片的数量
Num_img = gif.n_frames
# 创建一个空的数组，用来存放每帧图片的二维矩阵
arr_list = []
# 循环遍历每帧图片
for i in range(Num_img):
    # 将GIF文件指针移动到第i帧
    gif.seek(i)
    # 将图片转换为灰度模式
    img = gif.convert("RGB")
    # 将图片转换为numpy数组
    arr = np.array(img)
    # 将数组添加到arrlist中
    arr_list.append(arr)
    # 将数组命名为imgi，其中i为帧数
    globals()["img"+str(i+1)] = arr
arr = arr_list[0].copy()#创建一个同样大小的二维数组
Pixel = 1#这里设置一个单位要多少个像素点
for i in range(0, len(arr), Num_img * Pixel):
    for j, val in enumerate(arr_list):
        arr[:, i + j * Pixel:i + j * Pixel + Pixel] = val[:, i + j * Pixel:i + j * Pixel + Pixel]
#合并arr_list中的图片（大小需要匹配上帧率）
Out_put = Image.fromarray(arr)
#将arr转换为图片格式给Output
Out_put.save("tri1.png")
Out_put.show()
#保存并展示
